<template>
    <h2>Son组件</h2>
    <button @click="send">触发事件-发送数据</button>
</template>
<script setup lang='ts'>
import { ref, reactive } from 'vue'
const num = ref(99)
//定义自定义事件函数-----
//vue3 - js写法
// const emit = defineEmits(['sendData','getData'])
// const send = ()=>{
//     emit("sendData", "子组件向父组件传送的信息");
// }


//ts写法
// const emit = defineEmits<{
//     //()括号里面的第一个参数表示：自定义事件名，第二个参数：传递的数据和类型，第三/四个参数：传递的数据和类型，
//     (e:'sendData',num:number,msg:string):void //第一个自定义事件：事件名sendData，传递的参数num
//     (e:'getData',str:string):void //第一个自定义事件：事件名getData，传递的参数str
// }>()

//ts:3.3+写法
const emit = defineEmits<{
    //key:[],  key:事件名，[]:[参数：类型]
    sendData:[num:number,msg:string]
    getData:[str:string]
}>()

const send = ()=>{
    emit('sendData',num.value,'msg传递的数据hello')
}
</script>
<style scoped lang='scss'></style>